package main

import (
	"fmt"
	"time"

	"ddl_checker/pkg/utils"
)

func main() {
	// 创建配置管理器
	config := utils.NewConfig()

	// 加载配置（会自动加载.env文件和环境变量）
	err := config.Load()
	if err != nil {
		fmt.Printf("加载配置失败: %v\n", err)
		return
	}

	// 获取字符串配置
	appName := config.GetString("APP_NAME", "default_app")
	appVersion := config.GetString("APP_VERSION", "1.0.0")

	// 获取整数配置
	serverPort := config.GetInt("SERVER_PORT", 8080)
	maxConns := config.GetInt("DB_MAX_CONNS", 10)

	// 获取布尔配置
	debugMode := config.GetBool("DEBUG_MODE", false)

	// 获取时间配置
	readTimeout := config.GetDuration("SERVER_READ_TIMEOUT", 15*time.Second)

	// 必须获取的配置（如果不存在会panic）
	dbHost := config.MustGetString("DB_HOST")
	dbUser := config.MustGetString("DB_USER")

	fmt.Printf("应用配置:\n")
	fmt.Printf("  名称: %s\n", appName)
	fmt.Printf("  版本: %s\n", appVersion)
	fmt.Printf("  调试模式: %v\n", debugMode)

	fmt.Printf("\n服务器配置:\n")
	fmt.Printf("  端口: %d\n", serverPort)
	fmt.Printf("  读取超时: %v\n", readTimeout)

	fmt.Printf("\n数据库配置:\n")
	fmt.Printf("  主机: %s\n", dbHost)
	fmt.Printf("  用户: %s\n", dbUser)
	fmt.Printf("  最大连接数: %d\n", maxConns)

	// 使用不同路径的配置文件
	configFromCustomPath := utils.NewConfigWithPath("custom.env")
	customValue := configFromCustomPath.GetString("CUSTOM_CONFIG", "default")
	fmt.Printf("\n自定义配置: %s\n", customValue)
}
